#include <iostream>  
using namespace std;  

#include "aspect.h"

class Action  
{  
	public:  
		void Say(const char* str)  
		{  
			std::cout<<"Action::Say( "<<str<<" )"<<std::endl;  
		}  
};  


int main(int argc, char* argv[])  
{  
	Action a;  
    LogAspect<Action>(&a, "Action::Say")->Say("Hi");

	std::cout<<std::endl;  

	LockAspect<Action>(&a)->Say("Hello");  

	while (1);  
	return 0;  
}  
